﻿Public Class Clsdatabase

    Public Shared Function findrow(ByVal datatable As System.Data.DataTable, ByVal colonna As System.Data.DataColumn, ByVal ricerca As String)
        Dim riga As Integer = Nothing
        Dim arrayriga As New ArrayList
        For i = 0 To datatable.Rows.Count - 1
            Try
                If datatable.Rows(i).Item(colonna) = ricerca Then
                    'riga = i
                    arrayriga.Add(i)
                    'Exit For
                End If
            Catch ex As Exception
            End Try

        Next

        Return arrayriga

    End Function

    Public Shared Sub ricercadb(ByVal datatable As System.Data.DataTable, ByVal row As Integer)
        Dim form = FrmDisegniClienti
        form.TBPORTA.Text = datatable.Rows(row).Item("PORTA")
        form.TBALTEZZA.Text = datatable.Rows(row).Item("ALTEZZA")
        form.TBCARTELLA.Text = datatable.Rows(row).Item("CARTELLA")
        form.TBDIS_Y.Text = datatable.Rows(row).Item("DIS_INT_Y")
        If IsDBNull(datatable.Rows(row).Item("FONDOCELLA")) Then
            form.TBFONDOCELLA.Text = ""
        Else
            form.TBFONDOCELLA.Text = datatable.Rows(row).Item("FONDOCELLA")
        End If
        form.TBINT_X.Text = datatable.Rows(row).Item("DIS_INT_X")
        form.TBINTERRUTTORE.Text = datatable.Rows(row).Item("INTERRUTTORE")
        form.CBCABLAGGIO.Text = datatable.Rows(row).Item("CABLAGGIO")
        If form.CBCABLAGGIO.Text <> "" Then
            form.CBRIALZO_PIASTRA.Enabled = True
        End If
        form.CBIP.Text = datatable.Rows(row).Item("IP")
        form.CBLARGHEZZA.Text = datatable.Rows(row).Item("LARGHEZZA")
        form.CBORIENTAEMNTO.Text = datatable.Rows(row).Item("ORIENTAMENTO")
        If IsDBNull(datatable.Rows(row).Item("RIALZO/PIASTRA")) Then
            form.CBRIALZO_PIASTRA.Text = ""
        Else
            form.CBRIALZO_PIASTRA.Text = datatable.Rows(row).Item("RIALZO/PIASTRA")
        End If

        form.CBLATOPORTA.Text = datatable.Rows(row).Item("LATO_PORTA")
        form.tbsegregazione.Text = datatable.Rows(row).Item("SEGREGAZIONE")
        form.tbripiano.Text = datatable.Rows(row).Item("RIPIANO")
    End Sub

    Public Shared Sub azzeracampi()
        Dim form = FrmDisegniClienti
        form.TBPORTA.Text = ""
        form.TBALTEZZA.Text = ""
        form.TBCARTELLA.Text = ""
        form.TBDIS_Y.Text = ""
        form.TBFONDOCELLA.Text = ""
        form.TBINT_X.Text = ""
        form.TBINTERRUTTORE.Text = ""
        form.CBCABLAGGIO.Text = ""
        form.CBIP.Text = ""
        form.CBLARGHEZZA.Text = ""
        form.CBORIENTAEMNTO.Text = ""
        form.CBRIALZO_PIASTRA.Text = ""
        form.CBLATOPORTA.Text = ""
        form.tbripiano.Text = ""
        form.tbsegregazione.Text = ""
    End Sub

    Public Shared Sub inserisci_riga(ByVal datatable As System.Data.DataTable, Optional ByVal riganum As Object = Nothing)
        'conto le righe del dataset
        Dim nriga As Integer = datatable.Rows.Count
        Dim newrow = datatable.NewRow
        Dim form = FrmDisegniClienti
        'newrow.Item("ID") = datatable.Rows(nriga - 1).Item("ID") + 1
        newrow.Item("PORTA") = form.TBPORTA.Text
        newrow.Item("ALTEZZA") = form.TBALTEZZA.Text
        newrow.Item("CARTELLA") = form.TBCARTELLA.Text
        If form.TBDIS_Y.Text = Nothing Then
            newrow.Item("DIS_INT_Y") = "0"
        Else
            newrow.Item("DIS_INT_Y") = form.TBDIS_Y.Text
        End If
        newrow.Item("FONDOCELLA") = form.TBFONDOCELLA.Text
        If form.TBINT_X.Text = Nothing Then
            newrow.Item("DIS_INT_X") = "0"
        Else
            newrow.Item("DIS_INT_X") = form.TBINT_X.Text
        End If
        newrow.Item("INTERRUTTORE") = form.TBINTERRUTTORE.Text
        newrow.Item("CABLAGGIO") = form.CBCABLAGGIO.Text
        newrow.Item("IP") = form.CBIP.Text
        newrow.Item("LARGHEZZA") = form.CBLARGHEZZA.Text
        newrow.Item("ORIENTAMENTO") = form.CBORIENTAEMNTO.Text
        newrow.Item("RIALZO/PIASTRA") = form.CBRIALZO_PIASTRA.Text
        newrow.Item("LATO_PORTA") = form.CBLATOPORTA.Text
        newrow.Item("RIPIANO") = form.tbripiano.Text
        newrow.Item("SEGREGAZIONE") = form.tbsegregazione.Text
        '---controllo se la riga esiste gia---
        Dim esistenza As Integer = 0
        Dim RIGA As Integer
        For i = 0 To datatable.Rows.Count - 1
            If datatable.Rows(i).RowState = Data.DataRowState.Deleted Then
            Else
                If datatable.Rows(i).Item("PORTA") = newrow.Item("PORTA") And _
               datatable.Rows(i).Item("ALTEZZA") = newrow.Item("ALTEZZA") And _
               datatable.Rows(i).Item("CARTELLA") = newrow.Item("CARTELLA") And _
               datatable.Rows(i).Item("DIS_INT_Y") = newrow.Item("DIS_INT_Y") And _
               datatable.Rows(i).Item("FONDOCELLA") = newrow.Item("FONDOCELLA") And _
               datatable.Rows(i).Item("DIS_INT_X") = newrow.Item("DIS_INT_X") And _
               datatable.Rows(i).Item("INTERRUTTORE") = newrow.Item("INTERRUTTORE") And _
             datatable.Rows(i).Item("CABLAGGIO") = newrow.Item("CABLAGGIO") And _
                datatable.Rows(i).Item("IP") = newrow.Item("IP") And _
                datatable.Rows(i).Item("LARGHEZZA") = newrow.Item("LARGHEZZA") And _
                datatable.Rows(i).Item("ORIENTAMENTO") = newrow.Item("ORIENTAMENTO") And _
                datatable.Rows(i).Item("RIALZO/PIASTRA") = newrow.Item("RIALZO/PIASTRA") And _
                datatable.Rows(i).Item("LATO_PORTA") = newrow.Item("LATO_PORTA") And _
                datatable.Rows(i).Item("SEGREGAZIONE") = newrow.Item("SEGREGAZIONE") And _
                datatable.Rows(i).Item("RIPIANO") = newrow.Item("RIPIANO") Then

                    esistenza = 1
                    RIGA = i
                End If
            
            End If


        Next
        '-------------------------------------
        If riganum = Nothing And esistenza = 0 Then
            datatable.Rows.Add(newrow)
            FrmDisegniClienti.Label24.Text = "Riga inserita"
        Else
            FrmDisegniClienti.Label24.Text = "Riga esistente"
            If riganum <> Nothing Then
                Dim risultato As Integer

                risultato = MsgBox("Riga esistente vuoi aggiornarla?" & vbCrLf & "Se selezioni no verrà inserita una nuova riga", MsgBoxStyle.YesNoCancel)

                If risultato = MsgBoxResult.Yes Then
                    If datatable.Rows(riganum).Item("PORTA") <> newrow.Item("PORTA") Then
                        datatable.Rows(riganum).Item("PORTA") = newrow.Item("PORTA")
                    End If
                    If datatable.Rows(riganum).Item("ALTEZZA") <> newrow.Item("ALTEZZA") Then
                        datatable.Rows(riganum).Item("ALTEZZA") = newrow.Item("ALTEZZA")
                    End If
                    If datatable.Rows(riganum).Item("CARTELLA") <> newrow.Item("CARTELLA") Then
                        datatable.Rows(riganum).Item("CARTELLA") = newrow.Item("CARTELLA")
                    End If
                    If datatable.Rows(riganum).Item("DIS_INT_Y") <> newrow.Item("DIS_INT_Y") Then
                        datatable.Rows(riganum).Item("DIS_INT_Y") = newrow.Item("DIS_INT_Y")
                    End If
                    If datatable.Rows(riganum).Item("FONDOCELLA") <> newrow.Item("FONDOCELLA") Then
                        datatable.Rows(riganum).Item("FONDOCELLA") = newrow.Item("FONDOCELLA")
                    End If
                    If datatable.Rows(riganum).Item("DIS_INT_X") <> newrow.Item("DIS_INT_X") Then
                        datatable.Rows(riganum).Item("DIS_INT_X") = newrow.Item("DIS_INT_X")
                    End If
                    If datatable.Rows(riganum).Item("INTERRUTTORE") <> newrow.Item("INTERRUTTORE") Then
                        datatable.Rows(riganum).Item("INTERRUTTORE") = newrow.Item("INTERRUTTORE")
                    End If
                    If datatable.Rows(riganum).Item("CABLAGGIO") <> newrow.Item("CABLAGGIO") Then
                        datatable.Rows(riganum).Item("CABLAGGIO") = newrow.Item("CABLAGGIO")
                    End If
                    If datatable.Rows(riganum).Item("IP") <> newrow.Item("IP") Then
                        datatable.Rows(riganum).Item("IP") = newrow.Item("IP")
                    End If
                    If datatable.Rows(riganum).Item("LARGHEZZA") <> newrow.Item("LARGHEZZA") Then
                        datatable.Rows(riganum).Item("LARGHEZZA") = newrow.Item("LARGHEZZA")
                    End If
                    If datatable.Rows(riganum).Item("ORIENTAMENTO") <> newrow.Item("ORIENTAMENTO") Then
                        datatable.Rows(riganum).Item("ORIENTAMENTO") = newrow.Item("ORIENTAMENTO")
                    End If
                    If datatable.Rows(riganum).Item("RIALZO/PIASTRA") <> newrow.Item("RIALZO/PIASTRA") Then
                        datatable.Rows(riganum).Item("RIALZO/PIASTRA") = newrow.Item("RIALZO/PIASTRA")
                    End If
                    If datatable.Rows(riganum).Item("LATO_PORTA") <> newrow.Item("LATO_PORTA") Then
                        datatable.Rows(riganum).Item("LATO_PORTA") = newrow.Item("LATO_PORTA")
                    End If
                    If datatable.Rows(riganum).Item("SEGREGAZIONE") <> newrow.Item("SEGREGAZIONE") Then
                        datatable.Rows(riganum).Item("SEGREGAZIONE") = newrow.Item("SEGREGAZIONE")
                    End If
                    If datatable.Rows(riganum).Item("RIPIANO") <> newrow.Item("RIPIANO") Then
                        datatable.Rows(riganum).Item("RIPIANO") = newrow.Item("RIPIANO")
                    End If
                ElseIf risultato = MsgBoxResult.No Then
                    datatable.Rows.Add(newrow)
                    FrmDisegniClienti.Label24.Text = "Riga inserita"
                End If
            End If
        End If

    End Sub
    Public Shared Function CARICA_DATI(ByVal DATATABLE As System.Data.DataTable, ByVal COLONNA As System.Data.DataColumn)
        Dim DATI As New System.Collections.ObjectModel.Collection(Of String)
        Dim cella As String

        For i = 0 To DATATABLE.Rows.Count - 1
            Try
                If DATATABLE.Rows(i).RowState = Data.DataRowState.Deleted Then
                Else
                    If IsDBNull(DATATABLE.Rows(i).Item(COLONNA)) = False Then
                        cella = DATATABLE.Rows(i).Item(COLONNA)
                        If DATI.Contains(cella) Then
                        Else
                            DATI.Add(cella)
                        End If
                    End If
                End If
               
            Catch ex As Exception

            End Try


        Next

        Return DATI

    End Function

    Public Shared Function cerca(ByVal colonna As String, ByVal parametro As String, ByVal insieme As System.Data.DataTable)

        Dim righe As System.Data.DataRow = Nothing
        'Dim datatable As New System.Data.DataTable
        'datatable = insieme

        For i = 0 To insieme.Rows.Count - 1
            Try
                If insieme.Rows(i).RowState = Data.DataRowState.Deleted Then
                Else
                    If insieme.Rows(i).Item(colonna) = parametro Then
                    Else
                        insieme.Rows(i).Delete()
                    End If
                End If

            Catch ex As Exception
            End Try
        Next
        Return insieme
    End Function
    Public Shared Sub azzera_campi_MVA()
        Dim form = FrmDisegniClienti
        form.tbmontante.Text = ""
        form.tbpart_taglio1.Text = ""
        form.tbalt_taglio1.Text = ""
        form.tbpart_taglio2.Text = ""
        form.tbalt_taglio2.Text = ""
        form.cbaltezza_montante.Text = ""
        form.TBCARTELLA.Text = ""
    End Sub
    Public Shared Sub ricercadb_mva(ByVal datatable As System.Data.DataTable, ByVal row As Integer)
        Dim form = FrmDisegniClienti
        form.TBCARTELLA.Text = datatable.Rows(row).Item("CARTELLA")
        form.tbmontante.Text = datatable.Rows(row).Item("MONTANTE")
        form.tbpart_taglio1.Text = datatable.Rows(row).Item("PARTENZA_TAGLIO_1")
        form.tbpart_taglio2.Text = datatable.Rows(row).Item("PARTENZA_TAGLIO_2")
        form.tbalt_taglio1.Text = datatable.Rows(row).Item("ALTEZZA_TAGLIO_1")
        form.tbalt_taglio2.Text = datatable.Rows(row).Item("ALTEZZA_TAGLIO_2")
        form.cbaltezza_montante.Text = datatable.Rows(row).Item("ALTEZZA")
    End Sub

    Public Shared Sub INSERISCI_RIGA_MVA(ByVal datatable As System.Data.DataTable)
        Dim nriga As Integer = datatable.Rows.Count
        Dim newrow = datatable.NewRow
        Dim form = FrmDisegniClienti
        newrow.Item("ID") = datatable.Rows(nriga - 1).Item("ID") + 1
        newrow.Item("ALTEZZA") = form.cbaltezza_montante.SelectedItem
        newrow.Item("PARTENZA_TAGLIO_1") = form.tbpart_taglio1.Text
        newrow.Item("ALTEZZA_TAGLIO_1") = form.tbalt_taglio1.Text

        If form.tbpart_taglio2.Text = "" Then
            newrow.Item("PARTENZA_TAGLIO_2") = "0"
        Else
            newrow.Item("PARTENZA_TAGLIO_2") = form.tbpart_taglio2.Text
        End If

        If form.tbalt_taglio2.Text = "" Then
            newrow.Item("ALTEZZA_TAGLIO_2") = "0"
        Else
            newrow.Item("ALTEZZA_TAGLIO_2") = form.tbalt_taglio2.Text
        End If

        newrow.Item("MONTANTE") = form.tbmontante.Text
        newrow.Item("CARTELLA") = form.TBCARTELLA.Text

        Dim esistenza As Integer = 0
        For i = 0 To datatable.Rows.Count - 1
            If datatable.Rows(i).Item("ALTEZZA") = newrow.Item("ALTEZZA") And _
                datatable.Rows(i).Item("PARTENZA_TAGLIO_1") = newrow.Item("PARTENZA_TAGLIO_1") And _
                datatable.Rows(i).Item("ALTEZZA_TAGLIO_1") = newrow.Item("ALTEZZA_TAGLIO_1") And _
                datatable.Rows(i).Item("PARTENZA_TAGLIO_2") = newrow.Item("PARTENZA_TAGLIO_2") And _
                datatable.Rows(i).Item("ALTEZZA_TAGLIO_2") = newrow.Item("ALTEZZA_TAGLIO_2") And _
                datatable.Rows(i).Item("MONTANTE") = newrow.Item("MONTANTE") And _
                datatable.Rows(i).Item("CARTELLA") = newrow.Item("CARTELLA") Then

                esistenza = 1
                Exit For
            End If
        Next

        If esistenza = 0 Then
            datatable.Rows.Add(newrow)
            FrmDisegniClienti.Label24.Text = "Riga inserita"
        Else
            FrmDisegniClienti.Label24.Text = "Riga esistente"
        End If

    End Sub

    Public Shared Sub elimina_riga(ByVal tabella As Data.DataTable, ByVal nriga As Integer)
        tabella.Rows(nriga).Delete()
    End Sub

    Public Shared Function GENERA_QUERY(ByVal TABELLA As String, _
                                        Optional ByVal CAMPO_GENERICO As String = "", _
                                        Optional ByVal LATO_PORTA As String = "", _
                                          Optional ByVal LARGHEZZA As String = "", _
                                          Optional ByVal ALTEZZA As String = "", _
                                          Optional ByVal IP As String = "", _
                                          Optional ByVal CABLAGGIO As String = "", _
                                          Optional ByVal INTERRUTTORE As String = "", _
                                          Optional ByVal ORIENTAMENTO As String = "", _
                                          Optional ByVal DIS_INT_X As String = "", _
                                          Optional ByVal DIS_INT_Y As String = "", _
                                          Optional ByVal RIALZO_PIASTRA As String = "", _
                                          Optional ByVal ALTEZZA_MONTANTE As String = "", _
                                          Optional ByVal PART_TAGLIO_1 As String = "", _
                                          Optional ByVal ALT_TAGLIO_1 As String = "", _
                                          Optional ByVal PART_TAGLIO_2 As String = "", _
                                          Optional ByVal ALT_TAGLIO_2 As String = "")
        '"SELECT * FROM PORTE_SPECIALI WHERE LARGHEZZA =625 AND ALTEZZA =200 AND ORIENTAMENTO ='H' AND IP ='IP30' AND LATO_PORTA ='SX'"

        Dim QUERY As New Data.OleDb.OleDbCommand
        Dim ST As New System.Text.StringBuilder

        ST.Append("SELECT * FROM " & TABELLA & " WHERE ")

        If LATO_PORTA <> "" Then
            ST.Append("LATO_PORTA ='" & LATO_PORTA & "' AND ")
        End If

        If LARGHEZZA <> "" Then
            ST.Append("LARGHEZZA =" & LARGHEZZA & " AND ")
        End If

        If ALTEZZA <> "" Then
            ST.Append("ALTEZZA =" & ALTEZZA & " AND ")
        End If

        If IP <> "" Then
            ST.Append("IP ='" & IP & "' AND ")
        End If

        If CABLAGGIO <> "" Then
            ST.Append("CABLAGGIO ='" & CABLAGGIO & "' AND ")
        End If

        If INTERRUTTORE <> "" Then
            ST.Append("INTERRUTTORE ='" & INTERRUTTORE & "' AND ")
        End If

        If ORIENTAMENTO <> "" Then
            ST.Append("ORIENTAMENTO ='" & ORIENTAMENTO & "' AND ")
        End If

        If DIS_INT_X <> "" Then
            ST.Append("DIS_INT_X ='" & DIS_INT_X & "' AND ")
        End If

        If DIS_INT_Y <> "" Then
            ST.Append("DIS_INT_Y ='" & DIS_INT_Y & "' AND ")
        End If

        If RIALZO_PIASTRA <> "" Then
            ST.Append("[RIALZO/PIASTRA] ='" & RIALZO_PIASTRA & "' AND ")
        End If

        If ALTEZZA_MONTANTE <> "" Then
            ST.Append("ALTEZZA_MONTANTE ='" & ALTEZZA_MONTANTE & "' AND ")
        End If

        If PART_TAGLIO_1 <> "" Then
            ST.Append("PART_TAGLIO_1 ='" & PART_TAGLIO_1 & "' AND ")
        End If

        If ALT_TAGLIO_1 <> "" Then
            ST.Append("ALT_TAGLIO_1 ='" & ALT_TAGLIO_1 & "' AND ")
        End If

        If PART_TAGLIO_2 <> "" Then
            ST.Append("PART_TAGLIO_2 ='" & PART_TAGLIO_2 & "' AND ")
        End If

        If ALT_TAGLIO_2 <> "" Then
            ST.Append("ALT_TAGLIO_2 ='" & ALT_TAGLIO_2 & "' AND ")
        End If

        If ST.ToString.EndsWith(" AND ") Then
            QUERY.CommandText = ST.ToString.Remove(ST.ToString.Count - 5, 5)
        End If

        If QUERY.CommandText = "SELECT * FROM " & TABELLA & " WHERE " Or QUERY.CommandText = "" Then
            If QUERY.CommandText = "" Then
                ST.Clear()
                ST.Append("SELECT * FROM " & TABELLA & " WHERE ")
                ST.Append(CAMPO_GENERICO & " <> '' AND " & CAMPO_GENERICO & " <> '0'")
                QUERY.CommandText = ST.ToString
            Else
                QUERY.CommandText = QUERY.CommandText & CAMPO_GENERICO & " <> '' AND " & CAMPO_GENERICO & " <> '0'"
            End If

        Else
            QUERY.CommandText = QUERY.CommandText & " AND " & CAMPO_GENERICO & " <> '' AND " & CAMPO_GENERICO & " <> '0'"
        End If

        Return QUERY
    End Function

    ''' <summary>
    ''' Funzione per ricavare una lista dei campi contenuti in una certa colonna
    ''' </summary>
    ''' <param name="tabella">String - Nome della tabella dove effettuare la ricerca</param>
    ''' <param name="colonna">String - Nome della colonna</param>
    ''' <returns>Arraylist</returns>
    ''' <remarks></remarks>
    Public Shared Function Lista_item(ByVal tabella As String, ByVal colonna As String) As ArrayList

        Dim LISTAS As New ArrayList
        Dim DA As System.Data.OleDb.OleDbDataAdapter
        Dim query As New Data.OleDb.OleDbCommand
        Dim CONNESSIONE As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Lafer2k3\uff_tec\Dbporteclienti.mdb")
        Dim dataset As New System.Data.DataSet

        query.CommandText = ("SELECT " & colonna & " FROM " & tabella)
        DA = New Data.OleDb.OleDbDataAdapter(query.ToString, CONNESSIONE)
        DA.SelectCommand = query
        DA.SelectCommand.Connection = CONNESSIONE
        dataset.Tables.Add(tabella)
        DA.Fill(dataset, tabella)
        CONNESSIONE.Close()

        Dim numero_righe = dataset.Tables(0).Rows.Count

        For i = 0 To numero_righe - 1
            Dim campo = dataset.Tables(0).Rows(i).Item(0).ToString
            If LISTAS.Contains(campo) Then
            Else
                LISTAS.Add(campo)
            End If
        Next

        Return LISTAS
    End Function

    ''' <summary>
    ''' Sub per inserimento riga nel database
    ''' </summary>
    ''' <param name="query_inserimento">String - Query SQL completa per inserimento in tabella</param>
    ''' <remarks></remarks>
    Public Shared Sub inserisci_riga_gen(ByVal query_inserimento As String)

        Dim DA As System.Data.OleDb.OleDbDataAdapter
        Dim query As New Data.OleDb.OleDbCommand
        Dim CONNESSIONE As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Lafer2k3\uff_tec\Dbporteclienti.mdb")
        query.CommandText = query_inserimento
        DA = New Data.OleDb.OleDbDataAdapter(query.ToString, CONNESSIONE)
        DA.InsertCommand = query
        DA.InsertCommand.Connection = CONNESSIONE
        CONNESSIONE.Open()
        DA.InsertCommand.ExecuteNonQuery()
        CONNESSIONE.Close()

    End Sub

    ''' <summary>
    ''' Funzione per ricavare dataset contenente le righe che contengoni i parametri impostati
    ''' </summary>
    ''' <param name="TABELLA">String - Nome della tabella dove effettuare la ricerca</param>
    ''' <param name="COLONNA">String - Nome della colonna</param>
    ''' <param name="CAMPO"> String - Contenuto del campo se stringa in formato 'campo'</param>
    ''' <param name="COLONNA1">String - Nome della colonna</param>
    ''' <param name="CAMPO1">String - Contenuto del campo se stringa in formato 'campo'</param>
    ''' <param name="COLONNA2">String - Nome della colonna</param>
    ''' <param name="CAMPO2">String - Contenuto del campo se stringa in formato 'campo'</param>
    ''' <param name="COLONNA3">String - Nome della colonna</param>
    ''' <param name="CAMPO3">String - Contenuto del campo se stringa in formato 'campo'</param>
    ''' <returns>Dataset</returns>
    ''' <remarks></remarks>
    Public Shared Function FIND_ROW_GEN(ByVal TABELLA As String, ByVal COLONNA As String, ByVal CAMPO As String, _
                                        Optional ByVal COLONNA1 As String = "", Optional ByVal CAMPO1 As String = "", _
                                        Optional ByVal COLONNA2 As String = "", Optional ByVal CAMPO2 As String = "", _
                                        Optional ByVal COLONNA3 As String = "", Optional ByVal CAMPO3 As String = "") As System.Data.DataSet

        Dim DA As System.Data.OleDb.OleDbDataAdapter
        Dim query As New Data.OleDb.OleDbCommand
        Dim CONNESSIONE As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Lafer2k3\uff_tec\Dbporteclienti.mdb")
        Dim DATASET As New System.Data.DataSet

        If CAMPO3 = "''" Then
            CAMPO3 = ""
        End If

        Dim ST As New System.Text.StringBuilder

        ST.Append("SELECT * FROM " & TABELLA)

        If CAMPO <> "" Then
            ST.Append(" WHERE " & COLONNA & "=" & CAMPO & " AND")
        End If

        If CAMPO1 <> "" Then
            ST.Append(" WHERE " & COLONNA1 & "=" & CAMPO1 & " AND")
        End If

        If CAMPO2 <> "" Then
            ST.Append(" WHERE " & COLONNA2 & "=" & CAMPO2 & " AND")
        End If

        If CAMPO3 <> "" Then
            ST.Append(" WHERE " & COLONNA3 & "=" & CAMPO3 & " AND")
        End If

        If ST.ToString.EndsWith("AND") Then
            query.CommandText = ST.ToString.Remove(ST.ToString.Count - 4, 4)
        ElseIf ST.ToString.EndsWith(TABELLA) Then
            query.CommandText = (ST.ToString)
        End If


        DA = New Data.OleDb.OleDbDataAdapter(query.ToString, CONNESSIONE)
        DA.SelectCommand = query
        DATASET.Clear()
        DATASET.Tables.Add("QUANTITA")
        DA.SelectCommand.Connection = CONNESSIONE
        DA.Fill(DATASET, "QUANTITA")

        Return DATASET

    End Function

    ''' <summary>
    ''' FUNZIONE PER LA RICERCA NEL DATABASE
    ''' </summary>
    ''' <param name="COLONNA"></param>
    ''' <param name="tabella"></param>
    ''' <param name="ricerca"></param>
    ''' <returns>ARRAYLIST CONTENENTE TUTTE LE RIGHE CERCATE</returns>
    ''' <remarks></remarks>
    Public Shared Function ricerca_in_db(ByVal COLONNA As String, ByVal tabella As String, ByVal ricerca As String) As ArrayList

        Dim LISTAS As New ArrayList
        Dim DA As System.Data.OleDb.OleDbDataAdapter
        Dim query As New Data.OleDb.OleDbCommand
        Dim CONNESSIONE As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Lafer2k3\uff_tec\Dbporteclienti.mdb")
        Dim DATASET As New System.Data.DataSet
        query.CommandText = ("SELECT * FROM " & tabella & " WHERE " & COLONNA & " LIKE '%" & ricerca & "%'")
        DA = New Data.OleDb.OleDbDataAdapter(query.ToString, CONNESSIONE)
        DA.SelectCommand = query
        DATASET.Clear()
        DATASET.Tables.Add("QUANTITA")
        DA.SelectCommand.Connection = CONNESSIONE
        DA.Fill(DATASET, "QUANTITA")
        CONNESSIONE.Close()

        For Each ROW As System.Data.DataRow In DATASET.Tables(0).Rows
            LISTAS.Add(ROW.Item("PERCORSO"))
        Next
        Return LISTAS
    End Function
    Public Shared Sub dataset_componenti_speciali(ByVal dataset As Data.DataSet)
        Dim DA As System.Data.OleDb.OleDbDataAdapter
        Dim query As New Data.OleDb.OleDbCommand
        Dim CONNESSIONE As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\LAFER2K3\configur\DATABASE SPECIALE UFFICIO TECNICO\Lafer2003_ComponentiSpeciali.mdb;Jet OLEDB:Database Password=venerdì16;")
        For i = 1 To 2
            If i = 1 Then
                query.CommandText = ("SELECT * FROM ComponentiSpeciali")
                DA = New Data.OleDb.OleDbDataAdapter(query.ToString, CONNESSIONE)
                DA.SelectCommand = query
                dataset.Tables.Add("ComponentiSpeciali")
                DA.SelectCommand.Connection = CONNESSIONE
                DA.Fill(dataset, "ComponentiSpeciali")
            ElseIf i = 2 Then
                query.CommandText = ("SELECT * FROM TipiComponenti")
                DA = New Data.OleDb.OleDbDataAdapter(query.ToString, CONNESSIONE)
                DA.SelectCommand = query
                dataset.Tables.Add("TipiComponenti")
                DA.SelectCommand.Connection = CONNESSIONE
                DA.Fill(dataset, "TipiComponenti")
            End If

        Next
        CONNESSIONE.Close()
    End Sub
    Public Shared Sub lista_item_comp_speciali(ByVal datatable As Data.DataTable, ByVal colonna As String, ByVal arraylist As ArrayList)
        For Each riga As Data.DataRow In datatable.Rows
            If arraylist.Contains(riga.Item(colonna).ToString) = False Then
                If IsDBNull(riga.Item(colonna)) = True Then
                ElseIf riga.Item(colonna) = "CIECO" Or riga.Item(colonna) = "" Then
                Else
                    arraylist.Add(riga.Item(colonna).ToString)
                End If

            End If
        Next
    End Sub
 

    Public Structure parametro_query
        Dim parametro As String
        Dim valore As String
    End Structure

    Public Shared Sub elimina_righe_da_database(ByVal tabella As String, ByVal colonna As String, ByVal dato As String)

        Dim LISTAS As New ArrayList
        Dim DA As System.Data.OleDb.OleDbDataAdapter
        Dim query As New Data.OleDb.OleDbCommand
        Dim CONNESSIONE As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\LAFER2K3\configur\DATABASE SPECIALE UFFICIO TECNICO\Lafer2003_ComponentiSpeciali.mdb;Jet OLEDB:Database Password=venerdì16;")
        Dim DATASET As New System.Data.DataSet
        query.CommandText = ("DELETE FROM " & tabella & " WHERE " & colonna & " = '" & dato & "'")
        query.Connection = CONNESSIONE
        CONNESSIONE.Open()
        query.ExecuteNonQuery()
        CONNESSIONE.Close()
    End Sub
End Class
